{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('.\\Wholesale customers data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Channel</th>\n",
       "      <th>Region</th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>12669</td>\n",
       "      <td>9656</td>\n",
       "      <td>7561</td>\n",
       "      <td>214</td>\n",
       "      <td>2674</td>\n",
       "      <td>1338</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>7057</td>\n",
       "      <td>9810</td>\n",
       "      <td>9568</td>\n",
       "      <td>1762</td>\n",
       "      <td>3293</td>\n",
       "      <td>1776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>6353</td>\n",
       "      <td>8808</td>\n",
       "      <td>7684</td>\n",
       "      <td>2405</td>\n",
       "      <td>3516</td>\n",
       "      <td>7844</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>13265</td>\n",
       "      <td>1196</td>\n",
       "      <td>4221</td>\n",
       "      <td>6404</td>\n",
       "      <td>507</td>\n",
       "      <td>1788</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>22615</td>\n",
       "      <td>5410</td>\n",
       "      <td>7198</td>\n",
       "      <td>3915</td>\n",
       "      <td>1777</td>\n",
       "      <td>5185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>435</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>29703</td>\n",
       "      <td>12051</td>\n",
       "      <td>16027</td>\n",
       "      <td>13135</td>\n",
       "      <td>182</td>\n",
       "      <td>2204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>436</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>39228</td>\n",
       "      <td>1431</td>\n",
       "      <td>764</td>\n",
       "      <td>4510</td>\n",
       "      <td>93</td>\n",
       "      <td>2346</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>437</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>14531</td>\n",
       "      <td>15488</td>\n",
       "      <td>30243</td>\n",
       "      <td>437</td>\n",
       "      <td>14841</td>\n",
       "      <td>1867</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>438</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>10290</td>\n",
       "      <td>1981</td>\n",
       "      <td>2232</td>\n",
       "      <td>1038</td>\n",
       "      <td>168</td>\n",
       "      <td>2125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>439</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2787</td>\n",
       "      <td>1698</td>\n",
       "      <td>2510</td>\n",
       "      <td>65</td>\n",
       "      <td>477</td>\n",
       "      <td>52</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>440 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Channel  Region  Fresh   Milk  Grocery  Frozen  Detergents_Paper  \\\n",
       "0          2       3  12669   9656     7561     214              2674   \n",
       "1          2       3   7057   9810     9568    1762              3293   \n",
       "2          2       3   6353   8808     7684    2405              3516   \n",
       "3          1       3  13265   1196     4221    6404               507   \n",
       "4          2       3  22615   5410     7198    3915              1777   \n",
       "..       ...     ...    ...    ...      ...     ...               ...   \n",
       "435        1       3  29703  12051    16027   13135               182   \n",
       "436        1       3  39228   1431      764    4510                93   \n",
       "437        2       3  14531  15488    30243     437             14841   \n",
       "438        1       3  10290   1981     2232    1038               168   \n",
       "439        1       3   2787   1698     2510      65               477   \n",
       "\n",
       "     Delicassen  \n",
       "0          1338  \n",
       "1          1776  \n",
       "2          7844  \n",
       "3          1788  \n",
       "4          5185  \n",
       "..          ...  \n",
       "435        2204  \n",
       "436        2346  \n",
       "437        1867  \n",
       "438        2125  \n",
       "439          52  \n",
       "\n",
       "[440 rows x 8 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 查看缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Channel             0\n",
       "Region              0\n",
       "Fresh               0\n",
       "Milk                0\n",
       "Grocery             0\n",
       "Frozen              0\n",
       "Detergents_Paper    0\n",
       "Delicassen          0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Channel</th>\n",
       "      <th>Region</th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.322727</td>\n",
       "      <td>2.543182</td>\n",
       "      <td>12000.297727</td>\n",
       "      <td>5796.265909</td>\n",
       "      <td>7951.277273</td>\n",
       "      <td>3071.931818</td>\n",
       "      <td>2881.493182</td>\n",
       "      <td>1524.870455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.468052</td>\n",
       "      <td>0.774272</td>\n",
       "      <td>12647.328865</td>\n",
       "      <td>7380.377175</td>\n",
       "      <td>9503.162829</td>\n",
       "      <td>4854.673333</td>\n",
       "      <td>4767.854448</td>\n",
       "      <td>2820.105937</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>55.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>25.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3127.750000</td>\n",
       "      <td>1533.000000</td>\n",
       "      <td>2153.000000</td>\n",
       "      <td>742.250000</td>\n",
       "      <td>256.750000</td>\n",
       "      <td>408.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>8504.000000</td>\n",
       "      <td>3627.000000</td>\n",
       "      <td>4755.500000</td>\n",
       "      <td>1526.000000</td>\n",
       "      <td>816.500000</td>\n",
       "      <td>965.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>16933.750000</td>\n",
       "      <td>7190.250000</td>\n",
       "      <td>10655.750000</td>\n",
       "      <td>3554.250000</td>\n",
       "      <td>3922.000000</td>\n",
       "      <td>1820.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>112151.000000</td>\n",
       "      <td>73498.000000</td>\n",
       "      <td>92780.000000</td>\n",
       "      <td>60869.000000</td>\n",
       "      <td>40827.000000</td>\n",
       "      <td>47943.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Channel      Region          Fresh          Milk       Grocery  \\\n",
       "count  440.000000  440.000000     440.000000    440.000000    440.000000   \n",
       "mean     1.322727    2.543182   12000.297727   5796.265909   7951.277273   \n",
       "std      0.468052    0.774272   12647.328865   7380.377175   9503.162829   \n",
       "min      1.000000    1.000000       3.000000     55.000000      3.000000   \n",
       "25%      1.000000    2.000000    3127.750000   1533.000000   2153.000000   \n",
       "50%      1.000000    3.000000    8504.000000   3627.000000   4755.500000   \n",
       "75%      2.000000    3.000000   16933.750000   7190.250000  10655.750000   \n",
       "max      2.000000    3.000000  112151.000000  73498.000000  92780.000000   \n",
       "\n",
       "             Frozen  Detergents_Paper    Delicassen  \n",
       "count    440.000000        440.000000    440.000000  \n",
       "mean    3071.931818       2881.493182   1524.870455  \n",
       "std     4854.673333       4767.854448   2820.105937  \n",
       "min       25.000000          3.000000      3.000000  \n",
       "25%      742.250000        256.750000    408.250000  \n",
       "50%     1526.000000        816.500000    965.500000  \n",
       "75%     3554.250000       3922.000000   1820.250000  \n",
       "max    60869.000000      40827.000000  47943.000000  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.70833271, 0.53987376, 0.42274083, 0.01196489, 0.14950522,\n",
       "        0.07480852],\n",
       "       [0.44219826, 0.61470384, 0.59953989, 0.11040858, 0.20634248,\n",
       "        0.11128583],\n",
       "       [0.39655169, 0.5497918 , 0.47963217, 0.15011913, 0.2194673 ,\n",
       "        0.48961931],\n",
       "       ...,\n",
       "       [0.36446153, 0.38846468, 0.7585445 , 0.01096068, 0.37223685,\n",
       "        0.04682745],\n",
       "       [0.93773743, 0.1805304 , 0.20340427, 0.09459392, 0.01531   ,\n",
       "        0.19365326],\n",
       "       [0.67229603, 0.40960124, 0.60547651, 0.01567967, 0.11506466,\n",
       "        0.01254374]])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn import preprocessing \n",
    "# data_no = preprocessing.normalize(data.iloc[:,2:8],norm = 'l2')\n",
    "# data_no\n",
    "normalizer =preprocessing.Normalizer().fit(data)\n",
    "normalizer\n",
    "normalizer.transform(data.iloc[:,2:8])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 适用轮廓系数找到最优K"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.cluster import  KMeans\n",
    "from sklearn.metrics import silhouette_score\n",
    "data_norm = pd.DataFrame(normalizer.transform(data.iloc[:,2:8]),columns = data.columns[2:8])\n",
    "n_clusters= 3\n",
    "score = []\n",
    "for i in range (2,7):\n",
    "     cluster = KMeans(n_clusters =i,random_state = 0 ).fit(data_norm)\n",
    "     score.append  (silhouette_score(data_norm,cluster.labels_))\n",
    "plt.plot(range(2,7),score)\n",
    "plt.axvline(pd.DataFrame(score).idxmax()[0]+2,ls = ':')\n",
    "plt.ylabel('score',fontsize = '14')\n",
    "plt.xlabel('cluster',fontsize = '14')\n",
    "print(pd.DataFrame(score).idxmax()[0]+2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 建模及可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>y</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.907702</td>\n",
       "      <td>0.171099</td>\n",
       "      <td>0.226181</td>\n",
       "      <td>0.150525</td>\n",
       "      <td>0.049222</td>\n",
       "      <td>0.071186</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.262553</td>\n",
       "      <td>0.488689</td>\n",
       "      <td>0.677848</td>\n",
       "      <td>0.095956</td>\n",
       "      <td>0.266153</td>\n",
       "      <td>0.100561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.575088</td>\n",
       "      <td>0.233245</td>\n",
       "      <td>0.279252</td>\n",
       "      <td>0.625425</td>\n",
       "      <td>0.053748</td>\n",
       "      <td>0.109052</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Fresh      Milk   Grocery    Frozen  Detergents_Paper  Delicassen\n",
       "y                                                                      \n",
       "0  0.907702  0.171099  0.226181  0.150525          0.049222    0.071186\n",
       "1  0.262553  0.488689  0.677848  0.095956          0.266153    0.100561\n",
       "2  0.575088  0.233245  0.279252  0.625425          0.053748    0.109052"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c_2 = KMeans(n_clusters =3 ,random_state = 0).fit(data_norm)\n",
    "y_pred = c_2.labels_\n",
    "data_norm['y'] = y_pred\n",
    "grouped = data_norm.groupby(data_norm['y']).mean()\n",
    "grouped"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.294922751857967"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#饼图\n",
    "# fig = plt.figure(figsize=5,5),dpi = 150)\n",
    "#???没懂求的是什么"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8gAAAKTCAYAAADFbCGCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeVxU5f4H8M+ZgWEGGPZ92ET2RcNJvJqaa7hvlPYTTS019XZbbDVtMU2tzMq0zKzrrTQ30ApzQ70uaWmISSCYsimrIjsMzHJ+f+h4kUXRIBI+79drXhPnOed5vjPS6+XH5znPEURRBBEREREREVFHJ2nrAoiIiIiIiIj+DhiQiYiIiIiIiMCATERERERERASAAZmIiIiIiIgIAAMyEREREREREQAGZCIiIiIiIiIADMhEREREREREABiQiYiIiIiIiAAwIBMREREREREBYEAmIiIiIiIiAsCATERERERERASAAZmIiIiIiIgIAAMyEREREREREQDApK0LaCuCIOQDMAdwsa1rISIiImpDHgCqRFF0aetCiIjamiCKYlvX0CYEQSgzMzNTdu7cua1LISIiImozFy5cQE1NTbkoilZtXQsRUVvrsDPIAC527tw5ODk5ua3rICIiImozISEhSElJ4Yo6IiLwHmQiIiIiIiIiAAzIRERERERERAAYkImIiIiIiIgAMCATERERERERAWBAJiIiIiIiIgLAgExEREREREQEoGM/5omIiIiI2pmEhAQpAFlb10FEf6latVqtb4mOGJCJiIiI6J6WkJCgBDAZwCAAnm1cDhG1gYSEhGwA8QC+VqvV5XfbDwMyEREREd2zrofj1VKptIdUKrWTSCQKAEJb10VEfynRYDB46fX6EL1e/4+EhIR/3m1IZkAmIiIionvZZKlU2kMul7s6OTnlK5XKSxKJxNDWRRHRX8dgMEjKy8stCgsLXTUaTQ+9Xj8ZwCd30xcDMhERERHdywZJpVI7JyenfDs7u7K2LoaI/npSqVRv/P8/JyfHTq/XD8JdBmTuYk1ERERE96SEhAQTAJ4SiUShVCor27oeImpbSqWy8vptFp7XN+y7YwzIRERERHSvMr3+LnBZNRFJJBIR/9uD4K52s2dAJiIiIiIiovZA/LMdMCATERERERERgQGZiIiIiIiICAADMhERERER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e/fabNu2zXrChAml9a9bv369AwA8+eSTV+7qC6N2o0UCsiAIpgD+df3Hf9YNrqIorhAEYQqAvoIgqEVRvN3mAz0AyADsrhuOr/cVIwjCGQBdAQQDONES9RMRERERtRfJyckKAAgPD6+63blNSUpKsrjvvvsqL1y4kOTg4HDTtOuiRYucDx06ZO3n51d98ODBcyqVSgcAWVlZpv369fPft2+fzXvvvef4yiuvXDZeM2PGDI+EhATLHj16lO/YseOCi4vLjT4zMjJML126ZGr8ef/+/RZvvPGGh6ura21sbOz5Hj16VAPXlo6//PLLrsuXL3ebNWuWx65du9Lr171p0yaHtWvXps+YMaO47vFZs2Zd3rt3r826desc6gfkxMRE+alTpyz9/PyqBwwYUHm33xm1Dy21xLo3ABsAF0RRTGykfdv195HN6KummWNebeZ5REREREQdRnFxsQkAODk5NbrWOSoqyrv+68CBAxb1z/voo4+y64djAPj888+dAGD58uUXjeEYALy8vLRvv/32JQD47LPPnIzHs7KyTGNiYhzkcrlhw4YNGXXDMQB06tRJW3eZ99KlS10MBgM+/vjjLGM4BgCJRIJ33nknLygoqGrv3r22eXl5DSb7+vXrV1o/HAPA6NGjyzw8PGoOHjxonZ2dfdN1n376qQMATJkyhbPH1GIBuev191NNtJ+qd96tnARQCmCAIAi96zYIgjAOQBcAx0RRPH83hRIRERERtWeiKAIABEFotD02Nta+/uv8+fOyuuc4Ojpq+/bt22AG+o8//pDl5eXJHBwctKNGjSqv3/7oo4+WKpVKfWZmptx4r/CuXbuUer0eDz74YGnnzp0bLIuuS6/X4/jx41YWFhaGUaNGldVvl0gk6N69e4XBYMCxY8fM67cPHz68pLF+JRIJHnvssct6vV5Ys2bNjV27NRqNsG3bNnszMzNx5syZRbeqjTqGlgrIntffLzXRfqneeU0SRbEEwPTrPx4WBOGIIAibBEH4BddmoncDGPtniiUiIiIiaq/s7Ox0AFBYWNjo7ZSiKCYYX+PGjWs0FLq6utY2djw7O9sUAFQqVaPtEokEbm5utcC1mWMAuHjxogwAOnXqdNuVogUFBSZVVVWSyspKiampqVoQhAavr776yqmpz+ft7d1oXQAwZ86cIlNTU/Gbb75xMBiuber9zTff2BQXF5sMGTKk2NHRsfEdvKhDaalNuiyvvzd1n0NlvfNuSRTFbYIgXAWwGdeWbxsVADgAoNn/uiMIQnITTc3eVZuIiIiI6F4RHBxcferUKctTp06Z4y5vSzQzMxNv1d7U7HRdEsnNc3HNuca4A7aFhYUhMjKywVLpunx8fBqEYblc3mTdbm5uusjIyOK4uDi7nTt3KkeOHFn+73//27g51+WmrqOOpaUCsvG3valfyNv/31D3ZEF4HsC7AHYAeBNAOgAfAG8BeA/APwA8fDeFEhERERG1Z8OGDSv95ptvHHfu3Gmr1+sv3e1O1o3x9PTUAsClS5dkTZ2Tl5cnAwAPDw/t9fdaAEhPTze7Xf+urq46mUwmmpiYiDExMZktUnQds2bNuhwXF2e3du1aB39//5rjx49beXl51QwdOpRPxyEALbfE2nj/QYOb+68z3h9w2188QRAeBLAcwGkAj4iimCSKYqUoikm4FooTAUQJgvBQcwoTRTGksReAC825noiIiIjoXjJ+/PhSHx8fTW5urmzBggUuLdm3n59fraura+2VK1dMv//+e2X99k2bNlmXlZVJvb29NW5ubjoAGDJkSLlUKsWhQ4esMzIyTBv2+j+mpqaIiIgoLy0tle7atatZq0/vxPDhwys6deqk2bt3r+2iRYtcRFHEY489xtljuqGlAnL29Xf3Jtrd6513K49df48VRdFQt0EURT2A2Os/9ruTAomIiIiIOgKpVIr169dnyGQy8Z133lH985//VBUXFzf4e/+5c+dk6enp8jvtf/r06YUA8OKLL3oYN+ICgOzsbJP58+e7A8DMmTMLjce9vb21Y8eOLdJoNJLo6GjvgoKCm6a0MzMzTY8ePXpjw61XX301TyKRYPr06Z327NnTICRnZmaaLl261PFO6zaaOnXq5draWmHDhg2OJiYm4qxZs7g5F93QUkusf7v+3q2JduPxM83oyximG+xaV++4XTP6IiIiIiLqcPr06VP1/fffn4uOju78ySefuHzxxRfOYWFhlS4uLrXV1dWS/Px82dmzZ80NBgN8fX013bt3r759r9e8/vrrBYcOHVIePnzYOiAgILRnz57loiji+PHjVpWVlZJBgwaVvPTSSzfNyq5duzb7/Pnz8uPHj1t17ty5y/33319uYWFhuHjxoiwlJcX86aefzu/du3cVAAwdOrRi0aJF2a+//rrnkCFDAvz9/as7deqkqampkeTk5MjS09MVCoVCP2/evLua+Z09e3bRkiVL3GtqaoTBgweXGGe6iYCWC8g/4dqjmToLghDeyLOQjfcLxzWjr/zr7/c30d79+nvmHVVIRERERB1S0pSkhLauoS1ERkZWpKenJ3344YcOu3btsjl37pzi9OnTFjKZTHR2dq4dNWpU0SOPPFI8fvz4UhOT5scCExMTxMfHn3/nnXecNm7caH/kyBErAOjcubNm0qRJV1544YXL9e97trW1NRw7diztvffec9yyZYv9iRMnlKIowtnZWTt+/PiiiRMn3rSZ2Kuvvnq5T58+lcuXL3c+ceKE5f79+20sLCwMzs7OtRMnTrw8YcKEu9p8DAAcHR31QUFBVadPn7aYMWMGn31MNxGMz0n70x0JwmIA8wEcA/CQKIqV14/PBfA+gKOiKPapc/5TAJ4CsF0UxXl1jo/FtWXUegBjRVH8oU7baPxviXWwKIppf6Le5ODg4ODk5KY2uW453q/sbPE+M5cNb/E+iYiIqOMJCQlBSkpKyvU9Wu4pCQkJCgBH5HJ5UGBgYKpUKm2Zv9hSu3bhwgVTf3//Li4uLrUXL15Mqr/bNt279Hq9kJqaGqjRaM4C6KNWq5u9MsKopWaQAWAxgEEAegH4QxCEIwC8APTAtccyTat3vgOAAACu9Y7vALAVwCMAvhcE4VcAGQA64X+zyvP/TDgmIiIiIqKO6c0333Q1GAx44oknChmOqb4WC8iiKGoEQegPYB6AiQDGACgG8B8Ar4mieLGZ/YiCIEwAsBvAFABdANwHoATAjwA+FkVxd0vVTURERERE7dtvv/1mtmTJEpesrCyzX375Rens7Kx94YUXuHs1NdCSM8gQRbEawOvXX7c7901ce8ZxY20igC+vv4iIiIiIiO7axYsXZVu2bHGQy+WG7t27V6xatSrbysrKcPsrqaNp0YBMRERERET0dzNixIhyURQ75GZtdGe46J6IiIiIiIgIDMhEREREREREABiQiYiIiIiIiAAwIBMREREREREBYEAmIiIiIiIiAsCATERERERERASAAZmIiIiIiIgIAAMyEREREREREQAGZCIiIiIiIiIAgElbF0BERERERC1HEAT1rdq7d+9eceLEibS/qh6iewkDMhERERG1a2cDg24ZGP8uglLPJrRkf+PGjStq7HhAQICmJcchak8YkImIiIiI2qGYmJjMtq6B6F7De5CJiIiIiIiIwIBMRERERNRh/f7772aCIKh79erlX1RUJH3iiSc8VCpVmImJSbeZM2e6G8+rqakR3nrrLafg4OAghUIRbmFhEd6lS5fA9957z0Gv19/U59NPP+0mCIL6Vq9PPvnEru41xcXFkueff97V398/WKFQhCuVyvsiIiICNm7caH2rmsvLyyWzZs1yd3NzC5PJZN28vLxCX3vtNWeDwdBq3xm1b1xiTURERETUwVVXV0t69uwZUFhYKIuIiCgPCQmBjY2NHgC0Wi0GDRrke/ToUStLS0t97969ywwGA37++Werl156yevAgQNWO3fuTJdIrs29qdXqqqbuf961a5dtdXW1RCqV3jiWlZVl2r9/f/+MjAy5s7OztlevXmXV1dWSxMREy+joaN/U1NRLb731VkH9vmpqaoS+ffv6p6eny7t27Vrp4+Oj+fXXX5WLFy92r6yslK5YsSK3db4tas8YkImIiIiIOrjTp09bdOvWreL48eNJ9vb2N00Jv/nmmy5Hjx61CgwMrD5w4MA5V1dXHQBkZGSY9u/fP2D37t22K1ascHjhhReuAMCUKVNKpkyZUlJ/jNdee805NjbWPiwsrHLy5MnFxuMTJ070zsjIkP/zn//Mf//993PNzMxE4NpM8ZAhQ/yXLFniPnr06FK1Wn3T5mKnTp2yjIiIKE9LS0tycXHRA8CBAwcsHnroocDPPvvMeeHChflKpZJTyXRHuMSaiIiIiKgdamp585UrV6SNnf/xxx9n1w/HALBu3TonAFixYkW2MRwDQKdOnbRvvfXWJQD47LPPnG9Vy+bNm62XLFni7ujoqP3hhx8umJubiwBw+PBh82PHjlmp1eqKVatW5RjDMQCEhobWLF68+KJer8enn37qUL9PqVSKL7/8MssYjgFgwIABlQ888EBpVVWV5NixY+a3/5aIbsYZZCIiIiKidqipZc51Q6iRi4tLba9evarrH09JSZEVFhaaOjs7a4cOHVpRv33SpEkls2fPNpw/f15++fJlqaOjY4OAferUKfn06dM7yWQyw7Zt2857eXlpjW27du2yAoARI0Y0mHEGgIEDB1YAQGJiokX9Nnd395qQkJCa+sc7d+5cc/jwYeTk5Jg21ifRrTAgExERERG1Q3fymCc3N7faxo5fvHhRBgAqlapBEAUAiUQCNze32vPnz8uzsrJM6wfkgoIC6dixY30rKiqka9asyejbt29V3fasrCwzAFi4cKH7woUL3dGE4uLiBrnF1dW10ZotLS31AKDRaISm+iNqCgMyEREREVEH19iscl2CcPusWf8crVaLsWPHds7OzjZ76qmn8p988smr9a8x7oDdvXv3Cg8Pj0ZDOAA4OTlp6x9rTk1Ed4oBmYiIiIiIGuXh4VELAJcuXTJrrN1gMCAvL08GAJ6enjeF2CeeeMLz+PHjygEDBpR89NFHOY1dr1KptAAwbty4q6+88srllq2e6M5xk02z4NoAACAASURBVC4iIiIiImpUcHBwrZOTk7agoMB0165dlvXbN27caFNZWSnx9fXV1F1evXz5coevv/7a0c/Przo2NjbD+Aio+iIjI8sA4IcffrBptQ9BdAcYkImIiIiIqElPPPFEIQA8//zzHvn5+Td2wM7KyjJ97bXXVAAwc+bMG88p3rlzp+W8efM8bWxsdN9///15a2vrJh+1FBkZWdG9e/eKY8eOWc2cOdO9rKzspnyi0+kQExNjtW/fvgabdBG1Bi6xJiIiIiKiJi1cuDD/8OHDyp9++snK398/7B//+Ee5KIo4fvy4VWVlpWTIkCHFzz///BXj+W+++aZKp9MJrq6utfPnz3drrM/Zs2dfHjRoUCUAbN26NX3w4MF+n3/+ufPWrVvtg4KCqu3s7HR5eXmm6enp8pKSEpO33347e/DgwZV/1WemjosBmYiIiIiImmRqaor9+/eff+eddxy//fZbhyNHjlgBgK+vr2by5MlX5s6de7nuEmqD4dqE8dmzZ83Pnj3b6LOIBw4cWGYMyF5eXtqEhITU5cuXO27fvt32zJkzFjqdTrC3t9eGhoZWjRgxomTKlCkNNvgiag2CKN5yw7p2SxCE5ODg4ODk5ORWH8v7lZ0t3mfmsuEt3icRERF1PCEhIUhJSUkRRTGkrWu5UwkJCQoAR+RyeVBgYGCqVCrtmH+xJSIAgF6vF1JTUwM1Gs1ZAH3UanWDZ3vfDu9BJiIiIiIiIgIDMhEREREREREABmQiIiIiIiIiAAzIRERERERERAAYkImIiIiIiIgAMCATERERERERAWBAJiIiIiIiIgLAgExEREREREQEgAGZiIiIiIiICAADMhEREREREREABmQiIiIiIiIiAAzIRERERERERAAYkImIiIiIiIgAACZtXQAREREREbUcQRDUdX+WSqWiUqnUOzo6asPCwqpGjhxZEh0dXWJqatpWJVIriIuLU44cOdK/7jGpVAobGxtd165dK5599tnCkSNHlrdVffcKziATEREREbVD48aNKxo3blzRyJEjr3br1q1Cp9MJ27dvt582bVpnX1/f0IMHD5q3xDgrV660FwRBPXfuXLeW6K89UKlUYfX/oeKvYm9vrzP+2Q8ZMqRYqVTqDhw4YDN69Gj/d955x7EtarqXcAaZiIiIiNq11bMOtElQuVP/XDMgoSX7i4mJyax/LDk52eyll15S/fjjj7bDhg0L2L9/f2qvXr2qW3Jcals+Pj6aun/2BoMBL774ouuKFSvc3nzzTfdJkyYVq1QqXRuW+LfGGWQiIiIiog4iJCSkZufOnenjx4+/otFoJNOnT/du65qodUkkErz77rt5Hh4eNRqNRvLdd99ZtXVNf2cMyEREREREHcwnn3xySaFQGM6ePWu+Z88ey/rtaWlpsokTJ3qpVKowmUzWzdbWtuuQIUN8fvnlF0Xd8yIiIgKeeeYZbwD44IMPXAVBUBtfK1eutK977okTJxSjRo3q5OTk1EUmk3VzcnLq8vDDD3unpaXJ6o8/d+5cN2MfBw8eNO/fv7+vjY3NfYIgqI8dO3ajhp9++knRt29fP6VSeZ9Sqbyvd+/efocOHTK/1bJvjUYjLFq0yCk0NDTIwsIiXKFQhIeFhQV98MEHDgaDocF3JQiCWqVShel0OixYsMDZ29s7VCaTdXNxcekye/ZsVXV1tWA8Ny4uTikIgjo3N1dmvNb4UqlUYcbzysrKJPPnz3cJDAwMViqV95mbm4d7eHiEDh061CcmJqbFA6xUKkVQUFA1AFy8ePHG933s2DHFrFmz3ENCQoJsbW27ymSybu7u7mGTJk3yzMzMbHCTelpamkwQBHVERETA1atXJdOmTfNwcXHpYmZm1s3Hxydk4cKFTnq9vtEaSktLJS+88IKrv79/sEKhCLe0tAzv3r17wNdff21zu3FmzJjhrlKpwkxMTLo9/vjjHi341TTAJdZERERERB2Mvb29/sEHHyzdvXu3bXx8vDIyMrLC2LZnzx7Lhx9+2LeiokLq6+urGThwYEl+fr5s7969tocOHbLesmXLeeNmT4MGDSrV6/U4deqUZUBAQHVISEiVsZ+AgIAa43+vX7/eZubMmT5arVYICQmpUqvVFVlZWWYxMTH2+/fvt963b1/a/fffr6lf55EjR5TPP/+8l7e3d02fPn1K8/PzZVKpFACwb98+i1GjRvlrNBpJUFBQVefOnTXnzp1TDB48OPDhhx++0tjnLisrkwwYMMAvISHB0sbGRqdWqyskEomYmJhoOXfuXK+TJ0+ab9y4Mbuxa8eMGeNz4MAB6y5dulT6+PhoTp48ablmzRqX3Nxc2XfffZcBACqVSjtu3LiiXbt22VZXV0vGjRtXVOc71wGATqdDv379/BMTEy2cnZ21PXr0KJfJZGJeXp7s4MGDNubm5oaoqKiyO/wjva2KigoJAJiZmYnGY0uWLHHdvXu3ra+vb7Vara4QBAEpKSnmGzZscNy7d6/NiRMnznp7e2vr91VbWyv07ds3IDs726xnz57lWq1WOH78uPLNN9/0SEpKMt+2bVtm3fMvXrxo0r9//4ALFy7InZyctL169Sqrrq6WnD592vKxxx7rfPbs2ZwlS5bk1x9Ho9EIDzzwQGBubq4sIiKiPDQ0FLa2tq26PJwBmYiIiIioA+rSpUvV7t27bVNTU+XGY1evXpVMmjTJR6PRSL788sv0adOmFRvbduzYoRw/frzf9OnTO2VlZSXJ5XJxyZIl+S4uLtpTp05ZDhs2rGTFihW59cdJTU2VzZ49u5OZmZnhu+++Oz906NAbYXzVqlX2//rXv7ynTZvWKSkp6Wz9a7dt22Y/f/78S4sXLy6oe1yv12PGjBmdNBqNZMGCBZcWLVp0o/3FF190Xb58eaMbhs2ZM8c9ISHBcsyYMUXr16/Ptra2NgBAbm6uydChQ32//fZbx1GjRpU++uijpXWvy83NlcnlckNiYmJyQEBArfFz9ejRI/j777+3S05Ozg0JCakJDw/XxMTEZKpUKmV1dbWssfvAd+/erUxMTLQYOHBgyZ49ey4YAz8AFBUVSVNSUswaq/3PyMnJMTlz5owFANx33303/hFj5syZl1evXn3Ry8vrRgjW6/V4+eWXXd9//323F198UbV169YGn+G3336z8Pf3r05LS/vd1dVVB1y7v71///4BMTEx9hs2bCiOjo6+8R1OmjTJ+8KFC/JZs2blf/jhh7nGkJ6SkiIbMmSI/7vvvqsaPXp0aY8ePW66Hz4pKcnivvvuq7xw4UKSg4ND41PTLYxLrImIiIiIOiAHBwcdAJSWlt6YNFu1apXDlStXTJ988smCuuEYAMaMGVM+efLky4WFhaabN2+2bu447777rrNGo5G88cYbl+qGYwB46qmnigYNGlTy+++/mx89erTBrtp+fn7Vb731VkH94z/88IMyKyvLrFOnTpqFCxfe1L506dI8lUpVW/+anJwck82bNzuoVKrajRs3ZhnDMQC4ubnp1qxZkwUAa9eubXSn5xUrVmQbwzEABAYG1o4dO7YIAPbv399gmXpT8vPzTQCgb9++5XXDMXBtZr9Pnz5VjV54F6qqqoQDBw5YDBs2zLeiokLq7e2tGTFixI1HPY0aNaq8bjgGri3HXr58eZ6Tk5N23759DZY/Gy1btuySMRwD1+5vf+GFF/IA4NNPP3UyHj927Jji8OHD1uHh4ZWrV6/OqTuDHRwcXLtkyZJLer0en376qUNj43z00UfZf1U4BhiQiYiIiIg6JFEUBQAQBOFGYDlw4IAVAERFRRU3dk2fPn3KAeDEiRMWzR3n8OHDVgAwYcKEksbae/XqVQEAx48fbxCQH3rooVKJpGFkOXr0qCUAjBw5srh+u4mJCYYNG9ag/j179ih1Op3Qr1+/UoVCIdZv79mzZ7WFhYUhKSmpQR0mJibi8OHDGzxD2N/fXwMAeXl5zX6odERERJVEIsGqVatc1q5da1tcXNyimezkyZOWxvueLSwsug0cODDwzJkzFp6enjWxsbEXTExuXkScn58v/eijj+xnzJjhPn78eK+oqCjvqKgob51OJ5SWlkoLCgqk9cewtrbWjx07tsEy8OnTpxcBQGJioqXxfu5du3ZZAcCwYcMa/FkBwKBBg8oB4PTp0w1+pxwdHbV9+/ZtsX8waA4usSYiIiIi6oCuXLliAgA2NjY3ZucuXbpkBgADBgwIutW1RUVFzc4ROTk5MgDw9PTs2px66vL09GwwEwwAubm5pgDg4eHRaHtj12VkZMgAYMOGDY4bNmxo8nnAGo1GqH/M0dFRWz9YAoClpaUBAGpqapodcrt06VLz2muvXXr77bdVTz75pM+cOXPg6+tb3bdv37KZM2deaexe7Dthb2+ve/DBB0uBa8Hezs5O17Nnz8oJEyaU1p29BYDPPvvMbu7cuV5VVVVN1l9aWip1dna+aQbXzc2tprFz7ezsDEqlUl9eXi4tLi6W2tvb6zMzM80A4O2333Z/++233Zsap7i4uMEX7Orq2uifb2tiQCYiIiIi6oDOnDmjAHBjd2Pg2v2nADB06NBihULRcEvn6yIiIiqbO47BYBAEQYBxOXJTQkNDGwRDuVzeZA0AIAgNsiwAQBQbTBBDr9cLABAUFFRV9zM3R1Pj3K0333yzYNKkSVc3b95su3//fqtff/3V8vPPP3f+4osvnBcvXpw9b968y3fbd/3nIDfl3Llzsn/961/eoijirbfeujh27NhSb2/vWktLSxEAwsPDA0+fPm3R2Hd5K/XPN/5OqdXqCi8vr0aDNfC/Tczqqh/o/woMyEREREREHUxRUZH08OHD1sD/lrgCgKurqzYzM1P+xhtv5NXfMOluOTs71168eNHs888/z7azs7tl4G0uV1dXLQBkZ2c3eEQUcPOjjIzc3d1rAaBXr17l69atu9QSdfwZvr6+2vnz5xfOnz+/UKvV4vPPP7d7+umnvd944w2PGTNmXG3t+263b99urdVqhRkzZhS89tprhfXbL1682ORmYXl5eY1+71evXpVUVFRIFQqFwdbWVg8A7u7uWgAYM2ZM8YIFCxqM83fDe5CJiIiIiDqYOXPmuFdXV0tCQ0OrBg0adGM2uF+/fmUAsHXr1iY3Z6pPJpOJwLXHFzWmd+/eZQCwceNG2z9V9M19VgJAXFycbf1nF+v1euzatatB/UOHDi2XSqWIj4+3aarWlmJqaioCgFbb4AlJTZ2POXPmXA0LC6vSarVCUlJSi+9kXV9xcbEUaHyZ+q5duyxvtYy+pKTEZMeOHcr6x7/44gs7AAgPD68w3m8cGRlZBgBxcXHN/p1qSwzIREREREQdREpKimz48OE+W7ZscVAoFIYvvvgis277c889d9nW1lb38ccfu3700Uf29cNnWVmZZNWqVfYXLly4sSmVcYbwjz/+kKMR8+bNK5DL5YYFCxZ4bNy4scHu1wUFBdJly5Y5VlRUNHsd88iRI8s8PT1r0tPT5W+99ZZz3bb58+e7GO+lrqtTp07aqKioK1lZWWZjx47tlJeX1yAA7tu3z+JOduhuipOTkxYAfvvttwbfyQ8//KDcsWOH0rj02OjcuXOyCxcuyAVBQKdOnZqXrP8E43OqN2/ebF9WVnYjF2ZkZJg+9dRTXre7ft68eR75+fk3NvBKTU2VGR+vNWvWrBtLxAcOHFjZs2fP8l9++UX5xBNPeJSWlt6UQfV6PWJjY6327NnT7J3AWxOXWBMRERERtUNRUVHeAGAwGFBeXi7NyMiQZ2RkyEVRhJeXV81XX32VHhERcdMyakdHR/2mTZvOjx8/3u/ZZ5/1fvfdd938/f2rZTKZmJOTI0tPT5dXV1dLfvrpp5TOnTtrAWDAgAEVdnZ2ut27d9tGREQEeHl51UgkEnH69OlXBg8eXBkWFlazZs2ajFmzZnWKjo72nT9/vsbX11cjiiJycnLMLly4INdqtcL06dOvWlpaNmtZsYmJCdauXZs5evRo/4ULF7pv3brVzsfHR/PHH38o0tPT5Y8++uiVTZs2OchkspsS/rp16y5mZWWZxcXF2fn5+dkEBgZWubi4aAsLC02zsrLMCgsLTadNm1Y4YcKE0qbGbo5hw4aVnDx50nLIkCEBPXv2LDM3NzfY29vrPvnkk5zExETFG2+84WFra6sLDQ2tsrW11RUVFZn8+uuvypqaGuHxxx8v9Pb2bvWA/H//938lS5Ys0SQnJ5t37tw5VK1WV9TU1Eh+/vlnZVBQUHV4eHhlYmJio7uVd+3atVKr1QoBAQFhPXv2LKutrZUcP35cqdFoJKNHj746efLkm3Ys37x5c/qgQYP8v/zyS6eYmBj7oKCgKnt7e11eXp5pRkaGvLi42GThwoUXIyMjKxob76/EgExERERE1A7FxsbaA4BUKhUtLS0NTk5OtWPHji0aNWpUycSJE0tMTRt/MtFDDz1Uefr06eQlS5Y4x8fHW//8889KiUQCR0dH7YABA0rHjBlT3K1btxsbapmbm4vbt2//Y968eaozZ85Y/Prrr5aiKOKBBx6oGDx4cCUATJkypaRbt24pS5cudT5y5IjV4cOHrWUymcHJyUk7evToq1FRUcV2dnZ3dM9tZGRkxb59+1JfffVVVWJiomVWVpa8S5culatXr07bu3evEmi48ZNSqTQcOXLk3KpVqxy+/fZb+7S0NMWZM2cs7OzsdJ6enjUzZ84smDp16tU7/KobmD9/fkFxcbF0+/btdrt377bV6XSCm5tb7SeffJIzbty40qKiIpOjR48qU1NTFSUlJSa2trY6tVpdPmvWrMv1w2Vrkcvl4rFjx1Kfe+451cGDB60PHjxo4+TkVDtt2rTCd955J2/gwIF+TV0rk8nE/fv3//Hss8+q9uzZY1NSUmKiUqlqHnvssSuvvfZag+dWe3h46BISEs6+//77jrGxsXZJSUkWWq1WcHBw0AYHB1eNGDGiZMqUKY0+WuyvJtzprmTthSAIycHBwcHJycmtPpb3KztbvM/MZcNbvE8iIiLqeEJCQpCSkpIiimJIW9dypxISEhQAjsjl8qDAwMBUqVTaMf9iSw307dvX78iRI1b79+9PHTBgQLN33KZbS0tLkwUGBoZ179694sSJE2ltXU99er1eSE1NDdRoNGcB9FGr1Xe80RzvQSYiIiIiontOQUGB9Ny5czftpmwwGPD22287HTlyxMrT07OmX79+DMd0R7jEmoiIiIiI7jm///67fPDgwYH+/v7Vnp6eNXq9HufOnVNcunTJTC6XG1avXp1l3EmZqLkYkImIiIiI6J4TGBhYM3HixMvHjh1TGjeIsrOz040cOfLqggUL8utvQHavMW6ydjv29va6tWvXtvlzndsLBmQiIiIiIrrnqFQq3TfffJPd1nW0FuMma7fj5uZWC+AvCcgBAQG1oigm/BVjtRUGZCIiIiIior+Z9h5E/664KJ+IiIiIiIgInEEmIrojYf8Ja9H+kqYktWh/RERERHT3OINMREREREREBAZkIiIiIiIiIgAMyEREREREREQAGJCJiIiIiIiIADAgExEREREREQFgQCYiIiIiIiICwIBMREREREREBIABmYiIiIiIiAgAAzIRERERUbsiCIK67svExKSbra1tV39//+CoqCjv9evX22i12hYbLy4uTikIgjoqKsq77vGVK1faC4Kgnjt3rluLDUbUykzaugAiIiIiotb0/oQR6rauoTme3xyX0JL9jRs3rggADAYDysrKpBkZGfLt27fbx8bG2r/xxhs169evT+/fv39VS45JdK9jQCYiIiIiaodiYmIy6x9LTk42e+mll1Q//vij7bBhwwL279+f2qtXr+rWGD86OrqkT58+yS4uLrrW6J+oNXCJNRERERFRBxESElKzc+fO9PHjx1/RaDSS6dOne7fWWPb29vrw8HCNq6srAzLdMxiQiYiIiIg6mE8++eSSQqEwnD171nzPnj2W9dvT0tJkEydO9FKpVGEymaybra1t1yFDhvj88ssviuaOcat7kA0GAz799FO7nj17+tvY2NxnZmbWzd3dPWzkyJGd9u7da1H3vM8++8xuxIgRPt7e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7aCjjz76a0996lO/8tznPvdLW/d92tOedtM73vGOq37zN3/zH1155ZX3uPbaaw878cQTb33ta197zaMf/ehbVgfkk08++fbzzjvvuve+971HXn311Xe//PLLD7/73e+++bjjjrvj3HPP/cILXvCCL219pvLjH//4m37t137tc+973/vu+bd/+7eHfeQjHzninve85+YTTzzx1nPOOefLz3nOc27YtvaRRx655eKLL/7kBRdccPTrX//6+/7N3/zN3S+77LLD73Of+3z9+OOPv/1nf/Zn/+7ss8/++139c2HvMOb8lsd4HRDGGFc89KEPfegVV1xxlx/rQS9629JrXvu7P7T0msCOPeyihy213uU/dflS6wHsrFNOOaUrr7zyyjnnKRvdy8665JJL7l5dfNhhh5180kknXXXwwQcfmL/YAtXK3cavuuqqk2677bZPVI897bTTdvpGc65BBgAAgARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqDwHGQDYR3zipJOXWu/kqz6x1HoAbLixuwWsIAMAsK/62mKcW7Zs8XstHOC2bNkyqq3PQ79jV2r4HwkAAPuk00477evVZ7Zs2XLrpk2bDt/ofoCNtWnTpsO3bNlya/WZ0047bfOu1HCKNQAA+7J3bt68+ZTrr7/+/lVHHnnkzQcddNDs/19FAvZvY8uWLWPTpk2HX3/99cdu3rz5C9U7d7WYgAwAwL7sdZs3b370bbfddvrnPve5+xx00EHf0RKuQwT2KXPLli23bt68+QubN2/+6+p1u1pIQAYAYJ912mmnbbrkkkuet3nz5n++efPmJ1fHb3RPwIb4TCsrx6877bTTNu1qEQEZAIB92uKX4ddUr7nkkksOrr5tg1sC9qw7dvWa49WWFpDHGIdVL65+opW/ufv76u3VeXPO63ah3ndVv179QHVstam6unrTnPP3ltU3AAD7j8UvybdudB/Avmkpd7FehON3VedVR1RvqT5bnVNdOsY4YSfrPbO6vPrp6obqTdVHqwdXz1lGzwAAALCtZa0gv6Q6o/pg9ZQ5501VY4wXVr9fXVg9fj2FxhiPqP7vVlaMf2DO+f5t5g6qTl1SzwAAAPANu72CPMY4tPqFxcvnbQ3HVXPOV1SXVY8bY5y2zpKvbuW6kbO3DceLelvmnB/Z3Z4BAABgtWWcYv2Y6qjqmjnn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wzJOsa6VRzM9uTqjunqMcXErj2o6vbqhOmfV/kdXD6nuv6TjAwAAwG5ZxinWzTlva+U06N9u5XnIZ1YPqi6qHjnn/NQyjgMAAAB3lWWtIDfnvLU6b/G1o33Pr87fidrvaSeepwwAAAA7aykryAAAALCvE5ABAAAgARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAACqOmSjGwAA9j8Pu+hhS6/5J0uvCADfzAoyAAAAJCADAABAJSADAABAJSADAABAJSADAABAJSADAABAJSADAABA5TnIAPudP/i5v1xqvef9+ycttR4AwN7KCjIAAABkBRnYizzoRW9bes1rD1t6SQAA9lNWkAEAACABGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAAKo6ZKMbAAD2Auffa7n1Hnz8cusBwB5gBRkAAAASkAEAAKASkAEAAKByDTILD7voYUutd/lPXb7UegAAAHc1K8gAAACQgAwAAACVgAwAAACVgAwAAACVgAwAAACVgAwAAADVEgPyGOOwMcZLxxifHGPcNsb4/BjjwjHGcTtR46gxxrPHGH88xrhyjHHzGGPTGOOvxxgvGGMcuqx+AQAAYFtLCchjjMOqd1XnVUdUb6k+W51TXTrGOGGdpX6l+m/VWdUt1Z9VH6oeUb2y+ssxxj2W0TMAAABsa1kryC+pzqg+WJ045zxrznl6dW51THXhOuvcVL2sOn7O+ag554/POf9J9bDqM9Vjqt9cUs8AAADwDbsdkBenPf/C4uXz5pw3bZ2bc76iuqx63BjjtB3VmnP+7pzzN+acn1u1/erqRYuXP7G7PQMAAMBqy1hBfkx1VHXNnPOj25l/w2J8xm4e5+OL8Tt2sw4AAAB8i2UE5EcsxkvXmL901X676jsX4xd3sw4AAAB8i2UE5OMX43VrzF+3ar9d9YLF+JbdrAMAAADf4pAl1DhiMd6yxvzNq/bbaWOMn6ueXH21+t2dfO8Va0yt987aAAAAHACWsYI8FuPcwfyuFR/j8dWrFvX/xZzz87tTDwAAALZnGSvImxbj4WvMb31u8U1rzK9pjPHw6s3Vt1W/OOd8087WmHOeskbtK6qH7mw9AAAA9k/LWEH+zGI8bo3541btty5jjBOqd7Ryh+zz55yv3rX2AAAAYMeWEZC3Pn7p1DXmt26/bL0FxxjfUf1FdWz1qjnnS3e9PQAAANixZQTkD1Q3VieMMR65nflnLca3rqfYGOPerawcP7j6w+qXl9AjAAAA3KndDshzzjuqCxYvLxhjfONa5DHGC6uHV++fc354m+3PH2NcNcZ4+ba1xhj3qP5n9T3Vn1Q/M+dc6+ZfAAAAsDTLuElX1e+08himM6qrxxgXVw+sTq9uqM5Ztf/R1UOq+6/a/q+qR1ebq69X/2WMb70J9pzz7CX1DQAAANWSAvKc87YxxhOrF1fPrs6svlJdVP3WnPOz6yx178V48KLOWs7exVYBAABgu5ZxDXJVc85b55znzTm/a855tznnsXPOs7cXjuec5885x+qV4MX+Y0dfy+oZAAAAtlpaQAYAAIB9mYAMAAAACcgAAABQCcgAAABQCcgAAABQCcgAAABQCcgAAABQCcgAAABQ1SEb3QC76Px7Lbfeg49fbj0AAIB9jBVkAAAASEAGAACASkAGAACASkAGAACASkAGAACASkAGAACASkAGAACASkAGAACASkAGAACASkAGAACASkAGAACASkAGAACAqg7Z6AbYP33ipJOXXvPkqz6x9JoAAABbWUEGAACABGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACoBGQAAACo6pCNbgAAYH/w+2c9fek1z/3vb116TQDWZgUZAAAAEpABAACgEpABAACgEpABAACgcpMuAHZg2TcectMhAGBvZQUZAAAAEpABAACgcoo1wIb6xEknL7/oE/5g+TUBAA4AVpABAAAgARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAAAqARkAAACqOmSjG4CN8vtnPX2p9c79729daj0AAGDPsoIMAAAACcgAAABQCcgAAABQCcgAAABQCcgAAABQCcgAAABQCcgAAABQCcgAAABQCcgAAABQ1SEb3QAAwEb4g5/7y41uAYC9jBVkAAAASEAGAACAyinW7EOcCgcAANyVrCADAABAAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUAjIAAABUSwzIY4zDxhgvHWN8coxx2xjj82OMC8cYx+1CraPGGK8cY3x6jHH7YnzVGOOoZfULAAAA21pKQB5jHFa9qzqvOqJ6S/XZ6pzq0jHGCTtR677Vh6oXVF+v3lxtqn6x+vBiHgAAAJZqWSvIL6nOqD5YnTjnPGvOeXp1bnVMdeFO1Po31XdXb6wesqj1PdWrq++qXrGkngEAAOAbdjsgjzEOrX5h8fJ5c86bts7NOV9RXVY9boxx2jpqHVv9ZPW16ufnnF/fZvpXqy9VPznG+Pbd7RsAAAC2tYwV5MdUR1XXzDk/up35NyzGZ6yj1tMWPb1vzvl3207MOW+v/qw6eLEfAAAALM0yAvIjFuOla8xfumq/PVULAAAA1m0ZAfn4xXjdGvPXrdpvT9UCAACAdTtkCTWOWIy3rDF/86r99lStqsYYV6wxddI111zTKaecst5Su+zzf3fTjnfaSacctNya1xx69VLrPePLc6n1qm6+/l8std7cfMNS6124B/5b2t/5rCyHz8qBYdmfl739s1LL/7zs7Z+V2jOfl2uuuabq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\n",
      "text/plain": [
       "<Figure size 750x750 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "#条形图\n",
    "fig =plt.figure(figsize=(5,5),dpi = 150)\n",
    "x =list(range(3))\n",
    "total_width,n = 0.2,2\n",
    "width =total_width/n\n",
    "plt.bar(x,grouped.iloc[:,0],width = width,label = grouped.columns[0])\n",
    "for i in range (len(x)):\n",
    "    x[i] = x[i]+width\n",
    "plt.bar(x,grouped.iloc[:,1],width = width,label = grouped.columns[1])\n",
    "for i in range (len(x)):\n",
    "    x[i] = x[i]+width\n",
    "plt.bar(x,grouped.iloc[:,2],width = width,label = grouped.columns[2])\n",
    "for i in range (len(x)):\n",
    "    x[i] = x[i]+width\n",
    "plt.bar(x,grouped.iloc[:,3],width = width,label = grouped.columns[3])\n",
    "for i in range (len(x)):\n",
    "    x[i] = x[i]+width\n",
    "plt.bar(x,grouped.iloc[:,4],width = width,label = grouped.columns[4])\n",
    "for i in range (len(x)):\n",
    "    x[i] = x[i]+width\n",
    "plt.bar(x,grouped.iloc[:,5],width = width,label = grouped.columns[5])\n",
    "plt.legend(bbox_to_anchor =(0.75,0,0.8,1))\n",
    "xticks = [0,1,2]\n",
    "plt.xlabel('cluster')\n",
    "plt.xticks([0+2.5*width,1+2.5*width,2+2.5*width],xticks)\n",
    "plt.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
